# Системные уведомления

Система позволяет настраивать рассылку системных уведомлений.

Для формирования рассылки уведомлений необходимо:
1.	Создать пользовательскую процедуру формирования заголовка и текста уведомления. 
2.	Настроить список рассылки по умолчанию.
3.	Создать тип рассылки.
4.	Настроить вызов процедуры рассылки.

## Пользовательская процедура для формирования текста уведомления

Для создания новой пользовательской процедуры откройте пункт меню «Настройки и сервисы\ Процедуры».

В списке, на панели фильтрации в атрибуте «Тип» выберите значение «Формирование текста рассылки» и создайте новую пользовательскую процедуру.

Процедура для формирования текста уведомления должна содержать вызов метода, разработанный программистом или jexl-код. Пример jexl-код для процедуры формирования текста уведомления:
new('ru.bitec.app.bts.systemnotification.SystemNotification', 'Текст заголовка уведомления', 'Текст тела уведомления');

## Настройка списка рассылки

Настроить список рассылки по умолчанию можно одним из следующих способов:
1.	В типе объекта, от которого будет осуществляться формирование рассылки уведомлений, на закладке «Лист рассылки системных уведомлений» заполнить список рассылки;
2.	Программисту написать пользовательскую процедуру формирования списка рассылки.

![](img/Img15(settingupamailinglist).jpg)

*Рисунок 7 Настройка листа рассылки в типах объектов*

## Создание типа рассылки

Для создания нового типа рассылки откройте справочник «Тип системных уведомлений». Открыть справочник можно из приложений:
•	Администратор\Настройка;
•	Настройка системы\Настройки и сервисы:

![](img/Img17(settingupmailingnotifications).jpg)

*Рисунок 8 Справочник «Тип системных уведомлений»*

В списке типов уведомлений создайте новую запись и заполните ее атрибуты.

*Таблица 5  Атрибуты справочника «Тип системных уведомлений»*

|**Наименование**|**Описание**|**Способ ввода**|
|-|-|-|
|Модуль|Модуль, в рамках которого осуществляется рассылка данного типа уведомлений|Выбор из списка модулей|
|Системное имя|Системное имя типа уведомления|Текст. Ручной ввод|
|Наименование|Наименование типа уведомления|Текст. Ручной ввод|
|Редактировать лист рассылки|-Признак редактирования листа рассылки. При проставленном признаке процедура будет выводить на экран пользователю текущий список рассылки для возможности редактирования или отказа от рассылки.|Чекбокс|
|Функция формирования списка рассылки|Функция формирования списка рассылки. Если данный атрибут не заполнен, то выполняется базовая функция формирования списка рассылки, которая в существующем списке рассылки для данного объекта производит регистрацию записей, настроенных по умолчанию на типе объекта|Выбор из списка пользовательских процедур|
|Функция формирования текста уведомления|Функция формирования текста уведомления|Выбор из списка пользовательских процедур|
|Функция формирования уведомления|Функция формирования уведомления. Для формирования уведомлений в виде задач СЭД нужно выбрать пользовательскую процедуру «Формирование задач по системным уведомлениям» формирует задачи СЭД|Выбор из списка пользовательских процедур|
|Функция получения отправленных уведомлений|Функция получения отправленных уведомлений. Пользовательская процедура «Получение списка отправленных задач» выводит отправленные по заданной позиции списка рассылки задачи СЭД. |Выбор из списка пользовательских процедур|
|Описание|Описание. Содержит описание событий, о которых осуществляется вызов данного типа уведомления.|Текст. Ручной ввод|
|Не используется|Признак неактивности записи|Чекбокс|
|Дата окончания использования|Дата окончания использования|Дата|

## Настройка вызова процедуры рассылки уведомлений

Настроить вызов процедуры рассылки одним из следующих способов:
1.	Программисту в коде программы на нужное событие добавить вызов процедуры формирования уведомлений (Bts_SystemNotificationLib.sendNotification(gidObj, idSystemNotificationType));
2.	 Настроить вызов процедуры Bts_SystemNotificationLib.sendNotification(gidObj, idSystemNotificationType) для состояния для типа объектов;
3.	Настроить вызов процедуры Bts_SystemNotificationLib.sendNotification(gidObj, idSystemNotificationType) для стадии жизненного цикла.

Для настройки рассылки уведомлений на перевод состояния объекта (возможно только для объектов, у которых есть типы объектов в btk_objecttype) нужно:
1.	В заданном типе объектов перейти на закладку «Переходы состояний»

![](img/Img17(settingupmailingnotifications).jpg)

*Рисунок 9 Настройка вызова процедуры формирования рассылки уведомления*

2.	Для заданного состояния в детализации, на одной из закладок («Процедуры при входу в состояние», «Процедуры при выходе из состояния») добавить запись, в котором указать пользовательскую процедуру рассылки.
3.	Сбросить кэш настройки ![](img/Img18(resetcache).jpg).

Для создания новой пользовательской процедуры откройте пункт меню «Настройки и сервисы\ Процедуры».

В списке, на панели фильтрации в атрибуте «Тип» выберите значение «Процедура, вызываемая на изменение состояния объекта» и создайте новую пользовательскую процедуру.

Процедура для рассылки уведомлений должна содержать jexl-код:
var idvSystemType
=Bts_SystemNotificationTypeApi.findByMnemoCode('мнемокод_типа_системного_уведомления');
Bts_SystemNotificationLib.sendNotification(rop.gid, idvSystemType);
где  'мнемокод_типа_системного_уведомления'  мнемокод требуемого типа уведомления.

## Вывод информации о рассылках в карточке объекта

В карточке объекта можно вывести универсальную закладку с информацией о произведенных рассылках. Для этого нужно:

1.	В списке закладок («Сущности\ Закладки детализации») найти закладку «Рассылка уведомлений», в детализации, на закладке «Настройка доступности» добавить класс, для объектов которого требуется вывести данную закладку (если такового класса там нет)
2.	В типе объекта настроить вывод данной закладки.
3.	Вызвать операцию Сброса кэша настройки.

В карточке настраиваемого объекта будет выводится закладка:

![](img/Img19(systemnotificationmailinglist).jpg)

*Рисунок 10 Закладка «Лист рассылки системных уведомлений»*

## Рассылка уведомлений

Для включения/выключения системного уведомления нужно у соответствующего типа уведомления снять/проставить признак «Не используется».

Список получателей рассылки формируется в соответствии с заданной настройкой (см пункт «Настройка списка рассылки»). Далее, перед рассылкой он может быть скорректирован. Возможность редактирования листа рассылки пользователем на событие, вызывающее рассылку, регулируется признаком «Редактировать лист рассылки», который устанавливается в типе системного уведомления. При проставленном признаке «Редактировать лист рассылки» на событие, вызывающее рассылку данного уведомления, система открывает окно со списком рассылки:

![](img/Img20(systemnotifications).jpg)

*Рисунок 11 Лист рассылки системных уведомлений*

Лист рассылки содержит список пользователей для данного объекта. В детализации к позиции списка выводится перечень уведомлений, сформированных ранее по текущему объекту для данной позиции рассылки.

	Далее пользователь может:
•	скорректировать данный список и подтвердить рассылку;
•	отказаться от рассылки.

**Внимание!** При вызове процедуры рассылки уведомлений от настройки состояний система не поддерживает возможность редактирования списка рассылки пользователем для конкретного документа непосредственно перед отправкой уведомлений (признак «Редактировать лист рассылки» в типе системных уведомлений не отработает).